﻿using System;
using System.Collections.Generic;
using System.Text;

namespace EC.Application.Interface
{
    using EC.Entity;
    using EC.Entity.Query;
    using EC.Entity.Request.Customer;
    using EC.Entity.Request.Role;
    using EC.Entity.Request.Token;
    using EC.Entity.Response.Customer;
    using EC.Entity.Response.PointsLog;
    using EC.Entity.Response.Token;

    /// <summary>
    /// 会员接口
    /// </summary>
    public interface CustomerService
    {
        /// <summary>
        /// 获取
        /// </summary>
        /// <param name="id">编号</param>
        /// <returns></returns>
        CustomerResponse Get(int id);

        /// <summary>
        /// 根据会员编号获取Token
        /// </summary>
        /// <param name="customerId">编号</param>
        /// <returns></returns>
        TokenResponse GetToken(int customerId);

        /// <summary>
        /// Token新增、编辑
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        JResult SaveToken(SaveTokenRequest request);

        /// <summary>
        /// 状态
        /// </summary>
        /// <returns></returns>
        JResult UpdateStatus(int id, sbyte status);

        /// <summary>
        /// 重置密码
        /// </summary>
        /// <returns></returns>
        JResult SaveResetPassWord(ResetPassWordRequest request);

        /// <summary>
        /// 查询
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        PagedList<CustomerQueryResponse> GetPager(CustomerQuery query);

        /// <summary>
        /// 查询
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        PagedList<PointsLogQueryResponse> GetPointsLogPager(PointsLogQuery query);
    }
}
